#pragma once

/**
 * @brief    NastranHDF5文件写出器接口
 *
 * @version  0.1
 * @author   wxc
 * @date     2024.12.06
 *         _
 *     ___| |__   ___ _ __   __ _  ___  _ __   __ _
 *    / __| '_ \ / _ \ '_ \ / _` |/ _ \| '_ \ / _` |
 *    \__ \ | | |  __/ | | | (_| | (_) | | | | (_| |
 *    |___/_| |_|\___|_| |_|\__, |\___/|_| |_|\__, |
 *                          |___/             |___/
 * @copyright (c) 2024 by 神工仿真, All Rights Reserved.
 */
#include <string>
#include <vector>

#include "DataStructure/Common/Status.h"
#include "DataStructure/Input/Solver/Project.h"

#include "DBManager/DBServiceFactory.h"

#include "Export/NH5Export/GlobalDef.h"

SG_EXPORT_NH5_NAMESPACE_OPEN

/**
 * @brief    NastranHDF5文件写出
 *  因为现在的数据库文件就是使用nastran的数据结构去存的
 *  所以在此处是将自有数据库内的数据直接复制至输出文件中
 *
 * @param    dbm        数据库管理器
 * @param    H5filename 输出文件名
 * @return   是否成功
 * @author   wxc
 * @date     2024.12.12
 */
bool WriterNastranHDF5 (SG::DBManager::DBServiceFactorySP& dbm, SG::DataStructure::FEM::Project project, const std::string& H5filename);

SG_EXPORT_NH5_NAMESPACE_CLOSE